'use strict';

export default class {
	/*
	 * 删除数组中某个值的元素。
	 * @param array 数组
	 * @param value 需要删除的值
	 */
	static removeByValue(array, value) {
		for (let i = 0; i < array.length; i++) {
			if (array[i] === value) {
				array.splice(i, 1);
				break;
			}
		}
	}

	/*
	 * 获取数组中的最小值。
	 * @param array 数组
	 */
	static min(array) {
		return Math.min.apply(Math, array);
	}

	/*
	 * 获取数组中的最大值。
	 * @param array 数组
	 */
	static max(array) {
		return Math.max.apply(Math, array);
	}

	/*
	 * 去重。
	 * @param {Array} array 数组
	 * @return {Array}
	 */
	static unique(array) {
		let result = [];
		let json = {};

		for (let i = 0; i < array.length; i++) {
			let value = JSON.stringify(array[i]);

			if (!json[value]) {
				result.push(JSON.parse(value));
				json[value] = 1;
			}
		}

		return result;
	}
}
